# -*- coding: utf-8 -*-
# @Time : 2019/1/17 14:38
# @Author : Administrator
# @File : basic.py
# @Project : untitled
# @title :公共部分
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
class Common():
    #构造方法，实例化Common类时，完成登录
    def __init__(self):
        self.driver = webdriver.Firefox()  # 构造方法，实例化浏览器
        self.driver.maximize_window()  #最大化浏览器
        self.driver.get("http://192.168.2.141:8080/WoniuBoss2.5/")
        self.driver.find_element_by_name("userName").send_keys("WNCD000")  #用户名
        self.driver.find_element_by_name("userPass").send_keys("woniu123") #密码
        self.driver.find_element_by_xpath('//*[@id="form-login"]/div/div/div[2]/button').click() #点击登录

    #传入二级密码解密
    def decode(self,password):
        self.driver.find_element_by_id("btn-decrypt").click()  #点击解密
        time.sleep(0.5)
        self.driver.find_element_by_xpath('//*[@id="secondPass-modal"]/div/div/div[2]/input').send_keys(password)
        self.driver.find_element_by_xpath('//*[@id="secondPass-modal"]/div/div/div[3]/button').click()

    #通过姓名搜索学员信息
    def basic_ser_name(self):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 获取基本信息第一条数据中的学员姓名
        exp_name = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                     '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[1]').text
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/input[1]').send_keys(exp_name)
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/button').click() #点击搜索
        time.sleep(0.5)
        #获取搜索出的学员的姓名
        act_name = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                     '/div[3]/div[2]/div[2]/table/tbody/tr/td[1]').text
        return exp_name,act_name #返回开始获取的姓名和搜索出信息的姓名

    #通过学号搜索学员信息
    def basic_ser_id(self):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 获取基本信息第一条数据中的学员学号
        exp_id = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                     '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[2]').text
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/input[2]').send_keys(exp_id)
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/button').click() #点击搜索
        time.sleep(0.5)
        #获取搜索出的学员的学号
        act_id = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                   '/div[3]/div[2]/div[2]/table/tbody/tr/td[2]').text
        return exp_id,act_id  #返回开始获取的学号和搜索出信息的学号

    #修改学员基本信息-姓名
    def basic_modify_name(self,name):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 点击基本信息第一条数据进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[3]/div[2]'
                                          '/div[2]/table/tbody/tr[1]/td[12]/button[2]').click()
        # 清空姓名内容
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[1]/div[1]/div[1]/input').clear()
        #输入修改后的学员姓名
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[1]/div[1]/div[1]/input').send_keys(name)
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/div[2]/button').click() #点击保存
        time.sleep(0.5)
        #获取修改后的学员姓名
        act_name = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                     '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[1]').text
        return act_name

    #修改学员基本信息-学号
    def basic_modify_id(self,id):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 点击基本信息第一条数据进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[3]/div[2]'
                                          '/div[2]/table/tbody/tr[1]/td[12]/button[2]').click()
        # 清空学号内容
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[1]/div[1]/div[2]/input').clear()
        #输入修改后的学员学号
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[1]/div[1]/div[2]/input').send_keys(id)
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/div[2]/button').click() #点击保存
        time.sleep(0.5)
        #获取修改后的学员学号
        act_id = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                     '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[2]').text
        return act_id

    #修改学员基本信息-年龄
    def basic_modify_age(self,age):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 点击基本信息第一条数据进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[3]/div[2]'
                                          '/div[2]/table/tbody/tr[1]/td[12]/button[2]').click()
        # 清空年龄内容
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[4]/div[3]/input').clear()
        #输入修改后的年龄
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[4]/div[3]/input').send_keys(age)
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/div[2]/button').click() #点击保存
        time.sleep(0.5)
        #获取修改后的年龄
        act_age = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                    '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[6]').text
        return act_age

    #修改学员基本信息-最新状态
    def basic_modify_status(self,status):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        time.sleep(0.5)
        # 获取基本信息第一条数据的学号,用于修改状态之后查找修改的数据
        stu_id = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]'
                                                   '/div[3]/div[2]/div[2]/table/tbody/tr[1]/td[2]').text
        # 点击基本信息第一条数据进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[3]/div[2]'
                                          '/div[2]/table/tbody/tr[1]/td[12]/button[2]').click()
        #选择最新状态
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/form/div/div[1]/div[1]/div[6]/select').send_keys(status)
        self.driver.find_element_by_xpath('/html/body/div[9]/div/div/div[2]/button').click() #点击保存
        time.sleep(0.5)
        #通过学号搜索被修改的学员信息
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/input[2]').send_keys(stu_id)
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[2]/button').click()
        time.sleep(0.5)
        #获取被修改后学员信息的状态
        act_status = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[1]/div[3]'
                                          '/div[2]/div[2]/table/tbody/tr/td[11]').text
        return act_status

    #课程安排，修改课程信息，
    def plan_modify(self,status,dir,course,class_id,class_room):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        self.driver.find_element_by_xpath('/html/body/div[7]/div[2]/div/ul/li[9]/a').click() #点击课程安排
        #点击第一行课程安排进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[2]'
                                          '/div[2]/div[2]/table/tbody/tr[1]/td[10]/button').click()
        #状态选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[4]'
                                                 '/select').send_keys(status)
        #方向选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[5]'
                                          '/select').send_keys(dir)
        #课程模块选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[6]'
                                          '/select').send_keys(course)
        #班号选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[7]'
                                          '/select').send_keys(class_id)
        #教室选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[8]'
                                          '/select').send_keys(class_room)
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/div[2]/button').click()
        time.sleep(0.5)
        #获取修改后课程信息的课程模块文本
        act_coruse = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]'
                                                       '/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[7]').text
        return act_coruse

    # 课程安排，修改课程信息的状态
    def plan_modify_status(self,status):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        self.driver.find_element_by_xpath('/html/body/div[7]/div[2]/div/ul/li[9]/a').click() #点击课程安排
        #点击第一行课程安排进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[2]'
                                          '/div[2]/div[2]/table/tbody/tr[1]/td[10]/button').click()
        #状态选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[4]'
                                                 '/select').send_keys(status)
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/div[2]/button').click()
        time.sleep(0.5)
        #获取修改后课程信息的“状态”文本
        act_status = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]'
                                                       '/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[2]').text
        return act_status

    # 课程安排，修改课程信息的方向
    def plan_modify_dir(self,dir):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        self.driver.find_element_by_xpath('/html/body/div[7]/div[2]/div/ul/li[9]/a').click() #点击课程安排
        time.sleep(0.5)
        #点击第一行课程安排进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[2]'
                                          '/div[2]/div[2]/table/tbody/tr[1]/td[10]/button').click()
        #方向选择
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div/div/div[5]'
                                          '/select').send_keys(dir)
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/div[2]/button').click()
        time.sleep(0.5)
        #获取修改后课程信息的“方向”文本
        act_dir = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]'
                                                       '/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[3]').text
        return act_dir

    # 课程安排，修改课程信息的班级
    def plan_modify_clas(self,clas):
        self.driver.find_element_by_xpath('/html/body/div[4]/div[2]/a[5]').click()  # 点击学员管理
        self.driver.find_element_by_xpath('/html/body/div[7]/div[2]/div/ul/li[9]/a').click() #点击课程安排
        time.sleep(0.5)
        # Select(self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[1]/select')).select_by_value("邓乃文")
        Select(self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[1]/select')).select_by_visible_text("邓乃文")
        #点击第一行课程安排进行修改
        self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]/div[2]'
                                          '/div[2]/div[2]/table/tbody/tr[1]/td[10]/button').click()
        #班级选择
        # Select(self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div'
        #                                   '/div/div[7]/select')).select_by_visible_text(clas)
        Select(self.driver.find_element_by_xpath('/html/body/div[17]/div/div/form/div'
                                                 '/div/div[7]/select')).select_by_value(clas)
        self.driver.find_element_by_xpath('/html/body/div[17]/div/div/div[2]/button').click()
        time.sleep(0.5)
        #获取修改后课程信息的“班级”文本
        act_dir = self.driver.find_element_by_xpath('/html/body/div[7]/div[3]/div/div/div[7]'
                                                    '/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[4]').text
        return act_dir



if __name__ == '__main__':
    co = Common()
    co.plan_modify_clas("WNCDC023")